
-- --------------------------------------------------
-- Entity Designer DDL Script for SQL Server 2005, 2008, and Azure
-- --------------------------------------------------
-- Date Created: 12/16/2013 15:44:57
-- Generated from EDMX file: D:\p\QueroGas.Banco\BancoDeDadosSqlServer\QueroGas.edmx
-- --------------------------------------------------

SET QUOTED_IDENTIFIER OFF;
GO
USE [QueroGas];
GO
IF SCHEMA_ID(N'dbo') IS NULL EXECUTE(N'CREATE SCHEMA [dbo]');
GO

-- --------------------------------------------------
-- Dropping existing FOREIGN KEY constraints
-- --------------------------------------------------

IF OBJECT_ID(N'[dbo].[FK_EnderecoEmpresa]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[Empresa] DROP CONSTRAINT [FK_EnderecoEmpresa];
GO
IF OBJECT_ID(N'[dbo].[FK_UsuarioEmpresa]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[Empresa] DROP CONSTRAINT [FK_UsuarioEmpresa];
GO
IF OBJECT_ID(N'[dbo].[FK_EmpresaEmpresaTelefone]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[EmpresaTelefone] DROP CONSTRAINT [FK_EmpresaEmpresaTelefone];
GO
IF OBJECT_ID(N'[dbo].[FK_TelefoneEmpresaTelefone]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[EmpresaTelefone] DROP CONSTRAINT [FK_TelefoneEmpresaTelefone];
GO
IF OBJECT_ID(N'[dbo].[FK_EmpresaEmpresaProduto]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[EmpresaProduto] DROP CONSTRAINT [FK_EmpresaEmpresaProduto];
GO
IF OBJECT_ID(N'[dbo].[FK_ProdutoEmpresaProduto]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[EmpresaProduto] DROP CONSTRAINT [FK_ProdutoEmpresaProduto];
GO
IF OBJECT_ID(N'[dbo].[FK_CategoriaProdutoProduto]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[Produto] DROP CONSTRAINT [FK_CategoriaProdutoProduto];
GO
IF OBJECT_ID(N'[dbo].[FK_EmpresaEmpresaDistribuidora]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[EmpresaDistribuidora] DROP CONSTRAINT [FK_EmpresaEmpresaDistribuidora];
GO
IF OBJECT_ID(N'[dbo].[FK_DistribuidoraEmpresaDistribuidora]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[EmpresaDistribuidora] DROP CONSTRAINT [FK_DistribuidoraEmpresaDistribuidora];
GO

-- --------------------------------------------------
-- Dropping existing tables
-- --------------------------------------------------

IF OBJECT_ID(N'[dbo].[Empresa]', 'U') IS NOT NULL
    DROP TABLE [dbo].[Empresa];
GO
IF OBJECT_ID(N'[dbo].[Telefone]', 'U') IS NOT NULL
    DROP TABLE [dbo].[Telefone];
GO
IF OBJECT_ID(N'[dbo].[Usuario]', 'U') IS NOT NULL
    DROP TABLE [dbo].[Usuario];
GO
IF OBJECT_ID(N'[dbo].[Endereco]', 'U') IS NOT NULL
    DROP TABLE [dbo].[Endereco];
GO
IF OBJECT_ID(N'[dbo].[EmpresaTelefone]', 'U') IS NOT NULL
    DROP TABLE [dbo].[EmpresaTelefone];
GO
IF OBJECT_ID(N'[dbo].[Produto]', 'U') IS NOT NULL
    DROP TABLE [dbo].[Produto];
GO
IF OBJECT_ID(N'[dbo].[CategoriaProduto]', 'U') IS NOT NULL
    DROP TABLE [dbo].[CategoriaProduto];
GO
IF OBJECT_ID(N'[dbo].[EmpresaProduto]', 'U') IS NOT NULL
    DROP TABLE [dbo].[EmpresaProduto];
GO
IF OBJECT_ID(N'[dbo].[Distribuidora]', 'U') IS NOT NULL
    DROP TABLE [dbo].[Distribuidora];
GO
IF OBJECT_ID(N'[dbo].[EmpresaDistribuidora]', 'U') IS NOT NULL
    DROP TABLE [dbo].[EmpresaDistribuidora];
GO

-- --------------------------------------------------
-- Creating all tables
-- --------------------------------------------------

-- Creating table 'Empresa'
CREATE TABLE [dbo].[Empresa] (
    [IdEmpresa] int IDENTITY(1,1) NOT NULL,
    [Nome] nvarchar(128)  NOT NULL,
    [Ativo] bit  NOT NULL,
    [Endereco_IdEndereco] int  NOT NULL,
    [Usuario_IdUsuario] int  NOT NULL
);
GO

-- Creating table 'Telefone'
CREATE TABLE [dbo].[Telefone] (
    [IdTelefone] int IDENTITY(1,1) NOT NULL,
    [Ddd] nchar(2)  NOT NULL,
    [Numero] nvarchar(10)  NOT NULL,
    [TipoTelefone] nvarchar(32)  NOT NULL
);
GO

-- Creating table 'Usuario'
CREATE TABLE [dbo].[Usuario] (
    [IdUsuario] int IDENTITY(1,1) NOT NULL,
    [Nome] nvarchar(128)  NOT NULL,
    [Senha] nvarchar(64)  NOT NULL,
    [UltimoLogin] datetime  NOT NULL,
    [Email] nvarchar(256)  NOT NULL,
    [Ativo] bit  NOT NULL,
    [DataCadastro] datetime  NOT NULL
);
GO

-- Creating table 'Endereco'
CREATE TABLE [dbo].[Endereco] (
    [IdEndereco] int IDENTITY(1,1) NOT NULL,
    [Complemento] nvarchar(256)  NULL,
    [Cep] nchar(8)  NOT NULL,
    [Estado] nvarchar(2)  NOT NULL,
    [Bairro] nvarchar(64)  NOT NULL,
    [Cidade] nvarchar(64)  NOT NULL,
    [Logradouro] nvarchar(64)  NOT NULL,
    [Ativo] bit  NOT NULL
);
GO

-- Creating table 'EmpresaTelefone'
CREATE TABLE [dbo].[EmpresaTelefone] (
    [IdEmpresaTelefone] int IDENTITY(1,1) NOT NULL,
    [Empresa_IdEmpresa] int  NOT NULL,
    [Telefone_IdTelefone] int  NOT NULL
);
GO

-- Creating table 'Produto'
CREATE TABLE [dbo].[Produto] (
    [IdProduto] int IDENTITY(1,1) NOT NULL,
    [Nome] nvarchar(64)  NOT NULL,
    [Descricao] nvarchar(256)  NOT NULL,
    [CategoriaProduto_IdCategoriaProduto] int  NOT NULL
);
GO

-- Creating table 'CategoriaProduto'
CREATE TABLE [dbo].[CategoriaProduto] (
    [IdCategoriaProduto] int IDENTITY(1,1) NOT NULL,
    [Nome] nvarchar(64)  NOT NULL
);
GO

-- Creating table 'EmpresaProduto'
CREATE TABLE [dbo].[EmpresaProduto] (
    [IdEmpresaProduto] int IDENTITY(1,1) NOT NULL,
    [Preco] float  NOT NULL,
    [Empresa_IdEmpresa] int  NOT NULL,
    [Produto_IdProduto] int  NOT NULL
);
GO

-- Creating table 'Distribuidora'
CREATE TABLE [dbo].[Distribuidora] (
    [IdDistribuidora] int IDENTITY(1,1) NOT NULL,
    [Nome] nvarchar(max)  NOT NULL
);
GO

-- Creating table 'EmpresaDistribuidora'
CREATE TABLE [dbo].[EmpresaDistribuidora] (
    [IdEmpresaDistribuidora] int IDENTITY(1,1) NOT NULL,
    [Empresa_IdEmpresa] int  NOT NULL,
    [Distribuidora_IdDistribuidora] int  NOT NULL
);
GO

-- --------------------------------------------------
-- Creating all PRIMARY KEY constraints
-- --------------------------------------------------

-- Creating primary key on [IdEmpresa] in table 'Empresa'
ALTER TABLE [dbo].[Empresa]
ADD CONSTRAINT [PK_Empresa]
    PRIMARY KEY CLUSTERED ([IdEmpresa] ASC);
GO

-- Creating primary key on [IdTelefone] in table 'Telefone'
ALTER TABLE [dbo].[Telefone]
ADD CONSTRAINT [PK_Telefone]
    PRIMARY KEY CLUSTERED ([IdTelefone] ASC);
GO

-- Creating primary key on [IdUsuario] in table 'Usuario'
ALTER TABLE [dbo].[Usuario]
ADD CONSTRAINT [PK_Usuario]
    PRIMARY KEY CLUSTERED ([IdUsuario] ASC);
GO

-- Creating primary key on [IdEndereco] in table 'Endereco'
ALTER TABLE [dbo].[Endereco]
ADD CONSTRAINT [PK_Endereco]
    PRIMARY KEY CLUSTERED ([IdEndereco] ASC);
GO

-- Creating primary key on [IdEmpresaTelefone] in table 'EmpresaTelefone'
ALTER TABLE [dbo].[EmpresaTelefone]
ADD CONSTRAINT [PK_EmpresaTelefone]
    PRIMARY KEY CLUSTERED ([IdEmpresaTelefone] ASC);
GO

-- Creating primary key on [IdProduto] in table 'Produto'
ALTER TABLE [dbo].[Produto]
ADD CONSTRAINT [PK_Produto]
    PRIMARY KEY CLUSTERED ([IdProduto] ASC);
GO

-- Creating primary key on [IdCategoriaProduto] in table 'CategoriaProduto'
ALTER TABLE [dbo].[CategoriaProduto]
ADD CONSTRAINT [PK_CategoriaProduto]
    PRIMARY KEY CLUSTERED ([IdCategoriaProduto] ASC);
GO

-- Creating primary key on [IdEmpresaProduto] in table 'EmpresaProduto'
ALTER TABLE [dbo].[EmpresaProduto]
ADD CONSTRAINT [PK_EmpresaProduto]
    PRIMARY KEY CLUSTERED ([IdEmpresaProduto] ASC);
GO

-- Creating primary key on [IdDistribuidora] in table 'Distribuidora'
ALTER TABLE [dbo].[Distribuidora]
ADD CONSTRAINT [PK_Distribuidora]
    PRIMARY KEY CLUSTERED ([IdDistribuidora] ASC);
GO

-- Creating primary key on [IdEmpresaDistribuidora] in table 'EmpresaDistribuidora'
ALTER TABLE [dbo].[EmpresaDistribuidora]
ADD CONSTRAINT [PK_EmpresaDistribuidora]
    PRIMARY KEY CLUSTERED ([IdEmpresaDistribuidora] ASC);
GO

-- --------------------------------------------------
-- Creating all FOREIGN KEY constraints
-- --------------------------------------------------

-- Creating foreign key on [Endereco_IdEndereco] in table 'Empresa'
ALTER TABLE [dbo].[Empresa]
ADD CONSTRAINT [FK_EnderecoEmpresa]
    FOREIGN KEY ([Endereco_IdEndereco])
    REFERENCES [dbo].[Endereco]
        ([IdEndereco])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_EnderecoEmpresa'
CREATE INDEX [IX_FK_EnderecoEmpresa]
ON [dbo].[Empresa]
    ([Endereco_IdEndereco]);
GO

-- Creating foreign key on [Usuario_IdUsuario] in table 'Empresa'
ALTER TABLE [dbo].[Empresa]
ADD CONSTRAINT [FK_UsuarioEmpresa]
    FOREIGN KEY ([Usuario_IdUsuario])
    REFERENCES [dbo].[Usuario]
        ([IdUsuario])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_UsuarioEmpresa'
CREATE INDEX [IX_FK_UsuarioEmpresa]
ON [dbo].[Empresa]
    ([Usuario_IdUsuario]);
GO

-- Creating foreign key on [Empresa_IdEmpresa] in table 'EmpresaTelefone'
ALTER TABLE [dbo].[EmpresaTelefone]
ADD CONSTRAINT [FK_EmpresaEmpresaTelefone]
    FOREIGN KEY ([Empresa_IdEmpresa])
    REFERENCES [dbo].[Empresa]
        ([IdEmpresa])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_EmpresaEmpresaTelefone'
CREATE INDEX [IX_FK_EmpresaEmpresaTelefone]
ON [dbo].[EmpresaTelefone]
    ([Empresa_IdEmpresa]);
GO

-- Creating foreign key on [Telefone_IdTelefone] in table 'EmpresaTelefone'
ALTER TABLE [dbo].[EmpresaTelefone]
ADD CONSTRAINT [FK_TelefoneEmpresaTelefone]
    FOREIGN KEY ([Telefone_IdTelefone])
    REFERENCES [dbo].[Telefone]
        ([IdTelefone])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_TelefoneEmpresaTelefone'
CREATE INDEX [IX_FK_TelefoneEmpresaTelefone]
ON [dbo].[EmpresaTelefone]
    ([Telefone_IdTelefone]);
GO

-- Creating foreign key on [Empresa_IdEmpresa] in table 'EmpresaProduto'
ALTER TABLE [dbo].[EmpresaProduto]
ADD CONSTRAINT [FK_EmpresaEmpresaProduto]
    FOREIGN KEY ([Empresa_IdEmpresa])
    REFERENCES [dbo].[Empresa]
        ([IdEmpresa])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_EmpresaEmpresaProduto'
CREATE INDEX [IX_FK_EmpresaEmpresaProduto]
ON [dbo].[EmpresaProduto]
    ([Empresa_IdEmpresa]);
GO

-- Creating foreign key on [Produto_IdProduto] in table 'EmpresaProduto'
ALTER TABLE [dbo].[EmpresaProduto]
ADD CONSTRAINT [FK_ProdutoEmpresaProduto]
    FOREIGN KEY ([Produto_IdProduto])
    REFERENCES [dbo].[Produto]
        ([IdProduto])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_ProdutoEmpresaProduto'
CREATE INDEX [IX_FK_ProdutoEmpresaProduto]
ON [dbo].[EmpresaProduto]
    ([Produto_IdProduto]);
GO

-- Creating foreign key on [CategoriaProduto_IdCategoriaProduto] in table 'Produto'
ALTER TABLE [dbo].[Produto]
ADD CONSTRAINT [FK_CategoriaProdutoProduto]
    FOREIGN KEY ([CategoriaProduto_IdCategoriaProduto])
    REFERENCES [dbo].[CategoriaProduto]
        ([IdCategoriaProduto])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_CategoriaProdutoProduto'
CREATE INDEX [IX_FK_CategoriaProdutoProduto]
ON [dbo].[Produto]
    ([CategoriaProduto_IdCategoriaProduto]);
GO

-- Creating foreign key on [Empresa_IdEmpresa] in table 'EmpresaDistribuidora'
ALTER TABLE [dbo].[EmpresaDistribuidora]
ADD CONSTRAINT [FK_EmpresaEmpresaDistribuidora]
    FOREIGN KEY ([Empresa_IdEmpresa])
    REFERENCES [dbo].[Empresa]
        ([IdEmpresa])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_EmpresaEmpresaDistribuidora'
CREATE INDEX [IX_FK_EmpresaEmpresaDistribuidora]
ON [dbo].[EmpresaDistribuidora]
    ([Empresa_IdEmpresa]);
GO

-- Creating foreign key on [Distribuidora_IdDistribuidora] in table 'EmpresaDistribuidora'
ALTER TABLE [dbo].[EmpresaDistribuidora]
ADD CONSTRAINT [FK_DistribuidoraEmpresaDistribuidora]
    FOREIGN KEY ([Distribuidora_IdDistribuidora])
    REFERENCES [dbo].[Distribuidora]
        ([IdDistribuidora])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_DistribuidoraEmpresaDistribuidora'
CREATE INDEX [IX_FK_DistribuidoraEmpresaDistribuidora]
ON [dbo].[EmpresaDistribuidora]
    ([Distribuidora_IdDistribuidora]);
GO

-- --------------------------------------------------
-- Script has ended
-- --------------------------------------------------